package com.bzkj.basicinfo.service;

import com.bzkj.common.core.domain.R;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

/**
 * @projectName: bzkj-wms
 * @package: com.bzkj.basicinfo.service
 * @className: SelectService
 * @description: 前端下拉框数据服务层接口
 * @author: C1309
 * @createDate: 2024年11月20日
 * @version: v1.0
 */
public interface SelectService {
    /**
     * 查询仓库信息
     *
     * @return 查询结果
     */
    ArrayList<HashMap<String, Object>> selectStoStock();

    /***
     * 查询单据状态信息
     *
     * @return 查询结果
     */
    ArrayList<HashMap<String, Object>> selectStoStatus();

    /**
     * 查询NCC用户信息
     * @param userName 用户名
     *
     * @return 查询结果
     */
    ArrayList<HashMap<String, Object>> selectNccUser(String userName);

    /**
     * 查询NCC物料信息
     *
     * @param materialName 物料名称
     * @param modeType 模式类型(0:按名称查,1:按编码查)
     * @return 查询结果
     */
    ArrayList<HashMap<String, Object>> selectNccMaterial(String materialName ,int modeType);

    /**
     * 查询NCC部门信息
     *
     * @param manufacturerName 部门名称
     * @return 查询结果
     */
    ArrayList<HashMap<String, Object>> selectNccManufacturer(String manufacturerName);

    /**
     * 查询NCC部门信息
     *
     * @param deptName 部门名称
     * @return 查询结果
     */
    ArrayList<HashMap<String, Object>> selectNccDept(String deptName);

    /**
     * 根据NCC物料主键查询NCC物料详细信息
     *
     * @param primaryKey 主键
     * @return 查询结果
     */
    HashMap<String, Object> selectNccMaterialByPrimaryKey(String primaryKey);

    /**
     * 根据ncc物料主键、模式类型、批次号查询NCC物料库存信息
     * @param primaryKey 主键
     * @param modeType 批号模式
     * @param batchNo 批次号
     * @return 查询结果
     */
    List<HashMap<String, Object>> selectSkuInfoByPrimaryKey(String primaryKey, String modeType, String batchNo);

    /**
     * 查询NCC供应商信息
     *
     * @param supplierName 供应商名称
     * @return 查询结果
     */
    ArrayList<HashMap<String, Object>> selectNccSupplier(String supplierName);

    /**
     * 查询TMS系统物流企业信息
     *
     * @param logistics 物流企业名称
     * @return 物流企业信息
     */
    ArrayList<HashMap<String, Object>> selectTmsLogistics(String logistics);

    ArrayList<HashMap<String, Object>> selectstockAll();

    ArrayList<HashMap<String, Object>> selectParentClassId();

    ArrayList<HashMap<String, Object>> selectAreaAll();

    R findAllBasicPicInfo(String type);

    ArrayList<HashMap<String, Object>> selectNccMaterialCode(String materialName);

    HashMap<String, Object> selectNccMaterialByCode(String code);

    ArrayList<HashMap<String, Object>> selectSupplierPk(String supplierName);

    ArrayList<HashMap<String, Object>> selectNccUserCode(String username);

    /**
     * 查询NCC部门信息(code值)
     * @param deptName 部门名称
     * @return 查询结果
     */
    ArrayList<HashMap<String, Object>> selectNccDeptCode(String deptName);

    /**
     * 查询NCC生产厂商信息(pk值)
     * @param manufacturerName 生产厂商名称
     * @return 查询结果
     */
    ArrayList<HashMap<String, Object>> selectNccManufacturerPk(String manufacturerName);
}
